package com.cskaoyan.javase.basic._2variable._4cast;

/**
 * 表达式的类型提升
 * 如果表达式当中存在多种数据类型变量参与运算，
 * 由于表达式的运算结果是唯一的
 * 那么结果变量的数据类型将会提升到"最大取值范围"的那个。
 *
 * 当然,如果字符串参与了表达式的拼接字符串运算
 * 那么结果一定是字符串类型,不会是其他任何类型
 *
 * 注意事项:
 *      1.byte,short,char类型之间只要参与运算,那么结果一定是int
 *      2.只要表达式中存在任一变量，那么表达式的最终结果数据类型就遵循"表达式的类型提升"。
 *
 * @since 17:45
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        double a = 10;
        int b = 20;
        char c = 'a';
        /*
            在写等式(赋值语句)的时候
            建议先写右边,左边不要写了,自动生成
            生成的方式有两种:
                1.".var"
                2.快捷键 "alt + ctrl + V"
         */
        double num = a + b + c;

        String str = a + b + c + "abc";

        byte b1 = 100;
        byte b2 = 50;
        int i = b1 + b2;

        char c1 = 'a';
        char c2 = 'b';
        int i1 = c1 + c2;
    }
}
